
//	服务端
#pragma once
#include "NetworkReactor.h"

//	自定义网络事件处理类
class CNetworkDataManage
	: public CNetworkIO
{
	//	函数部分
public:
	CNetworkDataManage()
	{
	}

	CNetworkDataManage(CNetworkDataManage &right)
		: CNetworkIO(right)
	{
	}

	virtual ~CNetworkDataManage()
	{
	}

protected:
	//	读取网络上的数据(回调)
	bool read(NETWORK_DATA * network_data)
	{
		if (network_data == NULL || network_data->_buffer == NULL)
			return false;

		//	处理接收到的数据
		printf("type=%ld len=%ld\n", network_data->_type,network_data->_len);
		
		//	发送反馈
		write(network_data);
		
		return true;
	}
	
	//	网络事件(回调)
	//	事件类型
	bool event(short events)
	{
#if _DEBUG
		printf("事件ID:%d\n", events);
#endif
		return true;
	}

private:
	

	//	数据部分
public:
protected:
private:
};

const unsigned short PORT = 54000;
int _tmain(int argc, _TCHAR* argv[])
{
	//	启动反应器
	if (!NetRObj->Start())
	{
		printf("反应器启动失败!\n");
		return 0;
	}
	
	//	添加监听事件
	CNetworkDataManage network_init;
	if (!NetRObj->AddConnectEvent(PORT, &network_init))
	{
		printf("添加监听事件失败!\n");
		//	关闭反应器
		NetRObj->Stop();
		return 0;
	}
	
	Sleep(1000*60*5);
	
	//	关闭反应器
	NetRObj->Stop();
	
	return 1;
}